# 导包 json
import json
# 第一个写法
# 打开josn文件并读取
with open("../data/login.json", "r", encoding="utf-8") as f:
    # 调用load方法加载文件流下的内容。
    data = json.load(f)
    # print("获取的数据是",data)
# 使用函数进行封装.
# 第二个写法
# def read_json():
#     with open("../data/login.json","r",encoding="utf-8") as f:
#         # 返回调用load的加载文件流,谁调用我，返回给谁。
#        return json.load(f)
# 第三个写法，使用参数替换，静态文件名
# 首先写一个读取类
class ReadJson(object):
    # 调用init初始化,类调用的时候，这个init就首先执行。
    def __init__(self,filename):
        self.filepath="../data/"+filename
    def read_json(self):
        with open(self.filepath,"r",encoding="utf-8") as f:
            # 返回调用load的加载文件流,谁调用我，返回给谁。
           return json.load(f)
'''
    问题：
        1.未经过封装无法在别的模块使用
        2.数据存文件y有好几个，如果写死，在读取其他文件的时候是用不了。
        3.预期结果是列表嵌套劝阻的[(url,data...)] 但是目前我们直接使用的是返回的是字典
    解决：
        1.进行封装
        2.使用参数替换静态写死的文件。
        3.读取字典内容，并添加到新的列表下。
'''
# 实现一下
if __name__ == '__main__':
    # 这是data是把变量的值都接受了
    data=ReadJson("login.json").read_json()
    # 新建空列表，添加读取json的数据。
    arrs=[]
    # append(())里在加一个小括号,因为append是一个空列表，加入括号等于加入个元组
    # 1.读取有两种方式，一是用get，二是[],get的好处是键的名字如果是空的,他不会报错。如果使用[]会报异常。我们使用get演示。
    # 2. 是
    arrs.append((data.get("url"),
                 data.get("passport"),
                 data.get("passport"),
                 data.get("expect_result"),
                 data.get("status_code")))
    print(arrs)